package pwd.allen.behavior.memento;

/**
 * @author 门那粒沙
 * @create 2021-05-23 10:02
 **/
public class Main {
    public static void main(String[] args) {
        // 发起人，持有当前状态，并能备份当前状态以及根据备份恢复状态
        Originator or = new Originator();
        // 管理者，管理状态副本，能存取副本
        Caretaker cr = new Caretaker();

        or.setState("S0");
        System.out.println("初始状态:" + or.getState());
        // 保存状态
        cr.add(or.createMemento());

        or.setState("S1");
        System.out.println("新的状态:" + or.getState());
        //恢复状态
        or.restoreMemento(cr.getLast());
        System.out.println("恢复状态:" + or.getState());
    }
}
